package wechat

import (
	"fmt"
	"gitee.com/ifinder/gocomm"
	"gitee.com/ifinder/wechat-ipad-sdk-golang/wechat/login"
)





// 获取登陆二维码数据
func (this *WechatApi) GetLoginQr(req *login.GetLoginQrReq) (*login.GetLoginQrResp,error) {

	resp:= login.GetLoginQrResp{}
	uri:=this.serviceUrl+"/718/Login/GetQR"
	res,err:=gocomm.PostJSON(uri,req)
	err=resp.FromJson(res)
	return &resp,err

}

// 检测是否登陆 并返回用户数据
func (this *WechatApi) CheckLogin(req *login.CheckLoginReq) (*login.CheckLoginResp,error) {

	resp:= login.CheckLoginResp{}

	uri:=this.serviceUrl+"/718/Login/CheckQR"
	uri=fmt.Sprintf("%s?uuid=%s",uri,req.Uuid)
	ret,err:=gocomm.PostJSON(uri,nil)
	err=resp.FromJson(ret)
	return &resp,err

}

// 初始化
func (this *WechatApi) NewInit(req login.NewInitReq) (*login.NewInitResp,error) {

	resp:= login.NewInitResp{}
	uri:=this.serviceUrl+"/718/Login/Newinit"
	uri=fmt.Sprintf("%s?wxid=%s",uri,req.Wxid)
	res,err:=gocomm.PostJSON(uri,nil)
	err=resp.FromJson(res)
	return &resp,err

}

// Data62 数据串 登陆， 手机会掉线
func (this *WechatApi) Data62Login(req login.Data62LoginReq) (*login.Data62LoginResp,error) {

	resp:= login.Data62LoginResp{}
	uri:=this.serviceUrl+"/718/Login/62data"
	res,err:=gocomm.PostJSON(uri,req)
	err=resp.FromJson(res)
	return &resp,err

}


func (this *WechatApi) StartAutoHeartBeat(req login.StartAutoHeartBeatReq) (*login.StartAutoHeartBeatResp,error) {

	resp:= login.StartAutoHeartBeatResp{}

	uri:=this.serviceUrl+"/718/Login/HeartBeat"
	uri=fmt.Sprintf("%s?wxid=%s",uri,req.WxId)
	res,err:=gocomm.PostJSON(uri,nil)

	err=resp.FromJson(res)

	return &resp,err

}


// 二次登陆，当掉线后可以使用;需要用户手机辅助登陆
//唤醒登陆(只限扫码登录)
func (this *WechatApi) TwiceLogin(req login.TwiceLoginReq) (*login.TwiceLoginResp,error) {

	resp:= login.TwiceLoginResp{}

	uri:=this.serviceUrl+"/718/Login/Awaken"

	res,err:=gocomm.PostJSON(uri,req)

	err=resp.FromJson(res)

	return &resp,err

}



// 微信退出
func (this *WechatApi) Logout(req login.LogoutReq) (*login.LogoutResp,error) {

	resp:= login.LogoutResp{}

	uri:=this.serviceUrl+"/718/Login/LogOut"
	uri=fmt.Sprintf("%s?wxid=%s",uri,req.Wxid)
	res,err:=gocomm.PostJSON(uri,nil)

	err=resp.FromJson(res)

	return &resp,err

}








